The invention relates to smart cards and, in particular, to smart card application selection in a multi-application smart card.
Smart cards are used for a wide variety of applications including electronic game cards, bank cards, and identification badges. The smart cards are typically encased in a tamper resistant, plastic or metal housing about the size of a credit card and contain one or more embedded integrated circuit devices. Terminals, such as electronic casinos, automatic teller machines, and ID verification systems, are known which employ one or more smart card interfaces to connect the smart card to the terminal.
Conventional terminals have built-in communications protocols that are used to support the smart card applications. These protocols typically require the smart card, upon receiving a reset from the terminal, to immediately identify itself by providing an Answer To Reset (ATR). Each smart card application may have a different ATR and/or require a different protocol. Therefore, if the terminal does not receive a recognizable ATR, i.e., the terminal does not support the application, it may immediately reject the smart card.
For single-application smart cards, the card simply provides its only ATR, and the terminal either accepts or rejects the card. Referring to FIG. 1, conventional terminals 10, 12, 14, 16 are compatible with and will only recognize certain expected ATRs from smart cards 11, 13, 15, 17, respectively. However, with the advent of multi-application smart cards, even though the correct card may be inserted, the wrong ATR may be provided to the terminal because each application on the card may have a different ATR and/or communications protocol. The smart card has no opportunity to discover the nature of the terminal before providing the ATR and, therefore, does not know which ATR is required.
One solution is to have a selection mechanism by which the terminal sends the multi-application smart card a xe2x80x9cSelectxe2x80x9d command which selects the particular application to be run. Once selected, information and/or data going to and from the smart card are routed to the selected application until another Select command is received. Cards using this mechanism must have a specific ATR to be recognized by the terminals which support the mechanism.
The selection mechanism works well but has two primary drawbacks. First, most of the presently existing terminals do not support this selection mechanism and will not recognize the associated ATR. Therefore, cards implementing this mechanism will only be compatible with newer terminals that are designed to support application selection and can not be used in the vast base of existing terminals. Second, terminal and terminal device designers and/or software programmers have to expend time, effort and resource to incorporate this selection mechanism into their products. It would be much easier for them to simply use the existing terminal and terminal device specifications.
The present invention is directed to a method and/or mechanism for selecting the next application to run on a multi-application smart card.
In general, in one aspect, the invention relates to a multi-application smart card that comprises a persistent storage unit that indicates a present application to be run. The smart card runs the application indicated by the persistent storage unit and modifies the persistent storage unit to indicate a next application to be run. In some embodiments, the smart card may run an application-selection application between each conventional application. The application-selection application allows a user to select which application to run next. The smart card may also select the next application based on a predefined list of applications. The next application may be the same application as the present application. The smart card may use special signaling to activate an application-selection application.
In general, in another aspect, the invention relates to a multi-application smart card comprising means for indicating a present application to be run, means for running the indicated application, and means for modifying the means for indicating to indicate a next application to be run. In one embodiment, the means for modifying modifies the means for indicating to indicate an application-selection application as the next application to be run. In another embodiment, the means for modifying modifies the means for indicating to indicate a next application on a predefined list as the next application to be run. The means for modifying may also modify the means for indicating to indicate the present application as the next application to be run, or a user-selected application as the next application to be run. Upon receiving a predefined signal from a smart card terminal, the means for running may run an application-selection application which allows a user to select which application to run next.
In general, in another aspect, the invention relates to a smart card system comprising a multi-application smart card having a persistent storage unit which designates a next application to be run on the smart card, and an application-selection terminal that allows a user to select which application to be run next on the smart card. In some embodiments, the smart card modifies the persistent storage unit to designate an application-selection application as the application to be run next. In other embodiments, the terminal modifies the persistent storage unit to designate a user-selected application as the application to be run next.
Advantages of the invention include at least the following: flexibility and ease in selecting one of several applications on a multi-application smart card, and maintaining compatibility with the existing installed base of conventional smart card terminals. This backwards compatibility facilitates use of multi-application smart cards in traditional single application terminals while permitting innovative new applications to be deployed on the same card. Other advantages will become apparent from the following description and from the claims.